package initialize

import (
	"fmt"
	"github.com/cy77cc/hioshop/config"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"log"
)

// 获取数据库链接
func getDataSource(cfg config.Mysql) string {
	dataSource := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?parseTime=true&loc=%s",
		cfg.UserName,
		cfg.Password,
		cfg.Host,
		cfg.Port,
		cfg.Database,
		cfg.TimeZone,
	)
	return dataSource
}

// 连接数据库
func InitGorm(cfg config.Mysql) *gorm.DB {
	var err error
	// 链接
	Db, err := gorm.Open(mysql.Open(getDataSource(cfg)), &gorm.Config{})
	if err != nil {
		log.Panic("数据库连接错误：", err.Error())
	}
	sql, _ := Db.DB()
	// 设置连接池参数
	sql.SetMaxIdleConns(cfg.MaxIdleConn)
	sql.SetMaxOpenConns(cfg.MaxOpenConn)
	return Db
}
